SQL根據操作的功能性可分四大類: DDL、DQL、DML、DCL、TCL,五種功能差異整理如下,其中較容易讓初學者混淆的是Delete與Drop,Delete是對Row or Column維度進行刪除,Drop是對Table維度刪除。本系列會著重在深入講解DQL的活用。
【比較表】
| SEQ | Function | Introduction | Programming Syntax | 
|---|---|---|---|
| 1 | DDL(Data Definition Language, 資料定義命令) | 建立、刪除、更新Table | Create, Drop, Alter | 
| 2 | DQL(Data Query Language, 資料查詢語言) | 各種查詢or建立KPI | Select | 
| 3 | DML(Data Manipulation Language, 資料操作語言) | 插入、更新、刪除單筆/多筆資料 | Insert, Update, Delete | 
| 4 | DCL(Data Control Language, 資料控制語言) | 管理資料庫使用者權限 | Grant, Revoke | 
| 5 | TCL(Transaction Control Language, 事務控制語言) | 批次處理資料, 同時成功儲存or失敗 | Begin, Commit, Rollback | 
過往開發網站的時候,我會以 CRUD 的方式將每張 Table 建立成一個物件,撰寫成 API,後面的章節會再介紹API的細節。
CREATE TABLE `hackathon`.`student` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(20) NOT NULL , `password` VARCHAR(20) NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB CHARSET=ascii COLLATE ascii_general_ci;
SELECT * FROM `user` WHERE 1=1
>>> 塞入全新的一筆資料
INSERT INTO `user` (`u_id`, `username`, `password`, `email`) VALUES ('123556', '王小明', 'AAA', 'aaa@gmail.com');
>>> 更新資料特定欄位
UPDATE `user` SET `username`="許阿花" WHERE `username`="王小明"
DELETE FROM `user` WHERE `user`.`u_id` = 123556

MySQL必須掌握4種語言
Delete vs Truncate vs Drop
DB學習筆記-SQL
XML與JSON差異
SQL語法字典